package tp1POO.Persistencia;

import tp1POO.Modelo.Funcionario;
import tp1POO.Modelo.ObjetoPOO;
import tp1POO.Modelo.Pessoa;

public class FuncionarioDAOTexto extends DAOTexto {

	/**
	 * Salva objeto no arquivo text
	 * @param parObj Objeto a ser salvo, do tipo Funcionario
	 */
	@Override
	public void salvar(ObjetoPOO parObj) {
		Funcionario parFuncionario = (Funcionario) parObj;
		if (parFuncionario == null)
			return;
		String tmpValue;
		tmpValue = parFuncionario.getIdentifier() + FileManager.getSeparator() +
		parFuncionario.getCargo() + FileManager.getSeparator();

		Pessoa pes = new Pessoa();
		pes.copy(parFuncionario);
		GerenciadorObjetos.obterInstancia().salvarObj(pes);
		//Salvando objeto
		gestor.SalvarObjeto(tmpValue, parFuncionario.getClass().getSimpleName());
	}
	/**
	 * Converte uma string em um ObjetoPOO do tipo Funcionario
	 * @param parString String a ser convertida
	 * @return um objeto construido de acordo com seu tipo
	 */
	@Override
	public ObjetoPOO converterObj(String parString) {
		if (parString != null && parString.length() > 0)
		{
			String s[] = parString.split(FileManager.getSeparator());
			Pessoa pes = (Pessoa)GerenciadorObjetos.obterInstancia().obterObj(new Pessoa(s[0]));
			Funcionario func = new Funcionario(Funcionario.Cargo.valueOf(s[0]));
			func.copy(pes);
			return func;
		}
		return null;
	}
}
